[求助]两个java题目,高手……

来源:百度知道 编辑:UC知道 时间:2024/06/28 02:13:59
1,读取一个JAVA源程序,并且词法分析,从左到逐个字符扫描源程序,一个一个拼出单词,在拼单词的过程中做词法检查,在拼完单词是将所拼的单词翻译成相应的机内码。 (只需要建立标识符表,常数表,界限符表就Ok了)
2、:从一个文件中读取公式,计算每一个公式的结果并输出(注意公式中有变量,则首先提示输入变量的值)

第一题不需要做出编译器那样复杂,做出任何一个题目,并能给出源码,我再追加分数,大家帮帮忙啊……
第二个题目,据说可以使用逆波兰式,只包含简单变量,不知道……

第2题:变量,自己拼个字符串加上去就行
public class OPNode {
char op;// 运算符号
int level;// 优先级
//设置优先级
public OPNode(String op) {
this.op = op.charAt(0);
if (op.equals("+") || op.equals("-")) {
this.level = 1;
} else if (op.equals("*") || op.equals("/")) {
this.level = 2;
} else if (op.equals("(")) {
this.level = -3;

} else {
this.level = -1;
}
}
}
//主类
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class OPText {
public static void main(String[] args) {
String expression = "2+2+(8-2)/3";// 要计算的表达式
List list = new LinkedList();
//正则式
Pattern entryOfExpression = Pattern
.compile("[0-9]+(\\.[0-9]+)?|\\(|\\)|\\+|-|\\